Betacell
BetaCell is a toolkit designed to aid newbie and experienced computer graphics programmers to achieve their objectives by embracing DRY (don't repeat yourself) code and offering an object oriented perspective with design patterns; this makes BetaCell easy to use and gets you creating impressive results in a matter of hours. The toolkit encapsulates many common routines that are used throughout a computer graphics program and defines their access in a reusable fashion, this provides order to the application and allows the programmers to concentrate their effort in achieving more complex goals. BetaCell is built for XNA 2.0. Features Runtime effect composition through the effect framework: If you are asking why you can't just add the lightning effect you already did to the texturing effect or why you have to do a different texturing effect for point, directional and spot lights (not to mention that there are two versions of each, vertex and pixel!) the answer is because you haven't been using BetaCell. With BetaCell you can: * Create effects through composition instead of repeating yourself or making a maintenance nightmare of conditional statements * Create effects on the fly, you just state which parts you want to join together * Create effect parts that you can use to build you own compositions Very flexible vertex definitions If you have worked with XNA, you may already have noticed that you have two options. The first one is to use the vertex with the most definitions and pass a lot of unnecessary information to the GPU (worst you can do!), the second is to create a vertex type for every single scenario that you have in your application, so if you have an object with lightning pre-calculated, you have to create a vertex with position and color, but if you want it animated you have to create another with position, color, vertex index and vertex weight, and then you have texture, normal, binormal, bitangent, etc. The natural way to create a vertex element is to say something like createVertex(position, color, vertexIndex, vertexWeight) this is called composition in the object oriented world and can be done using BetaCell. BetaCell favors composition instead of inheritance, conditional statements and repeated code. Create content in Blender Create static and skinned animated objects in blender and load them in your XNA application. Create Height Maps importing them from HME Create height maps using HME and load them in your application. BetaCell can divide the map into parts to do effective frustum culling and also sorts the parts in a front to back order before drawing to save fill rate. Create meshes procedurally You can create spheres, cylinders, cubes, height maps and terrains by specifying level of detail like # of slices in the sphere and properties like radius. Compose particle systems through the particle framework Compose particle systems through the particle framework. Use particle effect parts like acceleration, oscillation, fading, resizing, amongst others, or create new particle effect parts and define a particle system as the sum of these parts. Also you can define how your particles are emitted in many different ways. Built in Ray picking Pick objects in the scene with the mouse or shot some objects with your favorite gun, BetaCell has a simple interface by which you can intersect objects very easily. Advanced texturing techniques Advanced texturing techniques built in like: * Normal mapping * Environmental mapping * Displacement mapping * Shadow Maps Platforms BetaCell is free to use, you can create any type of non commercial/commercial application without paying anything. It is working on the following platforms: * Windows * XBOX360 Tutorials Related Weblinks * BetaCell website * XNA Creators Club Category:Library Category:3D Category:Free